package cn.itcast.lesson05;

import java.lang.reflect.Method;
import org.junit.Test;


/**
 * 反射中： java.lang.reflect.Method的用法
 */
public class MethodTest {
	
	
	/**
	 * jdk1.5
	 */
	@Test
	public void getMethod() throws Exception{
		
		String name="huanghoulin";
		
		//参数列表   参数的个数和类型    substring有2个参数。分别int和int类型
		//public String substring(int beginIndex, int endIndex)
		Method method = String.class.getMethod("substring", int.class,int.class);
		
		//包含开始 但是不包含结束
		Object object = method.invoke(name, 1,3);
		System.out.println(object);
	}
	
	
	/**
	 * jdk1.4
	 */
	@Test
	public void getMethodJDK14() throws Exception{
		
		String name="huanghoulin";
		
		//参数列表   参数的个数和类型    substring有2个参数。分别int和int类型
		//public String substring(int beginIndex, int endIndex)
		Method method = String.class.getMethod("substring", int.class,int.class);
		
		//包含开始 但是不包含结束
		Object object = method.invoke(name, new Object[]{0,5});
		System.out.println(object);
	}

}
